package com.ruifu.proj.mapper;

import com.fhzncloud.cloud.common.security.service.CloudUser;
import com.ruifu.common.po.PmPtObject;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 输入输出文档DAO
 * @author 宁义锐
 */
@Mapper
public interface PmPtObjectMapper {

    /**
     * 新建
     * @param pmPtObject
     * @param cloudUser
     */
    void insert(@Param("pmPtObject") PmPtObject pmPtObject, @Param("cloudUser") CloudUser cloudUser);

    /**
     * 根据id查询
     * @param poId
     * @return
     */
    PmPtObject findById(Long poId);

    /**
     * 修改
     * @param pmPtObject
     * @param cloudUser
     */
    void update(@Param("pmPtObject") PmPtObject pmPtObject, @Param("cloudUser") CloudUser cloudUser);

    /**
     * 根据类型查询所需列表
     * @param ptId 所属任务id
     * @param poIOType 输入输出标识
     * @param isObjTypeFlag 是否查询类型标识
     * @param cloudUser
     * @return
     */
    List<PmPtObject> findByPtIdAndPoIOType(@Param("ptId") Long ptId,
                                           @Param("poIOType") String poIOType,
                                           @Param("isObjTypeFlag") Boolean isObjTypeFlag,
                                           @Param("cloudUser") CloudUser cloudUser);

    /**
     * 根据任务id获取输入输出文档
     * @param pbPtId
     * @param cloudUser
     * @return
     */
    List<PmPtObject> findByPtId(@Param("pbPtId") Long pbPtId, @Param("cloudUser") CloudUser cloudUser);

    void deleteById(@Param("poId") Long poId, @Param("cloudUser") CloudUser cloudUser);

    PmPtObject findByPtIdAndPoIOTypeAndPoObjId(@Param("ptId") Long poPtId,
                                               @Param("poIOType") String poIOType,
                                               @Param("poObjId") Long poObjId,
                                               @Param("poObjTypeId")Long poObjTypeId,
                                               @Param("cloudUser")CloudUser cloudUser);
}
